1. Field of the Invention
Embodiments of the present invention generally relate to digital media and, more specifically, to dynamically adjusting streaming media bit rates in response user requests for accelerated playback.
2. Description of the Related Art
Digital content distribution systems typically include a content server, a content player, and a communications network connecting the content server to the content player. The content server is configured to store digital content files available for download from the content server to the content player. Each digital content file corresponds to a specific identifying title, such as “Gone with the Wind,” which is familiar to a user. The digital content file typically includes sequential content data, organized according to playback chronology, including audio data and/or video data.
The content player is configured to download and play a digital content file, in response to a user request. The process of playing the digital content file includes decoding and rendering audio and video data to generate audio and video signals sent to audio speakers and a display screen. Playback typically involves a technique known as “streaming,” where the content server transmits digital content to the content player, which plays the digital content file while content data is being received. To account for variable latency and bandwidth within the communications network, a content buffer queues the incoming content data ahead of the content data actually being played. During moments of network congestion, which leads to lower available bandwidth, less content data is added to the content buffer, which may drain down as content data is being de-queued to support playback at a certain playback bit rate. However, during moments of high network bandwidth, the content buffer is replenished and additional buffer time is added until the content buffer is generally full again. In practical systems, the content buffer may queue content data corresponding to a time span ranging from seconds to more than a minute.
Each digital content file stored on the content server is typically encoded for a specific playback bit rate. Each title may be encoded using a variety of different bit rates. Prior to initiating playback, the content player may measure available bandwidth from the content server and select a digital content file having a bit rate that can be supported by the measured available bandwidth. To maximize playback quality, the content player may select to stream the digital content file with the highest bit rate that does not exceed the measured bandwidth. To the extent the communications network can provide adequate bandwidth to download the selected digital content file while satisfying bit rate requirements, playback proceeds satisfactorily. This approach presumes that the video data is played back at a normal bit rate. In some cases, however, a user may desire to accelerate playback, e.g., to skip through selected portions of the content file more quickly than normal. Doing so drains data from the content buffer at a greater rate than playback at a normal speed. Thus, in practice, if a user selects to accelerate playback for an extended period, the content buffer may drain completely, resulting in a condition known as a buffer under-run. If a buffer under-run occurs, playback may become highly unreliable or simply halt until additional content can be retrieved and playback restarted, severely diminishing overall playback quality.
As the foregoing illustrates, there remains a need for a technique for downloading digital content files to a content player that provides a higher quality playback experience than prior art approaches, including techniques that allow for accelerated playback of streaming media.